package com.synergy.stockflow.production.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Schema
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "production_scheduling_detail")
public class ProductionSchedulingDetail {
    /**
     * 明细编号
     */
    @TableId(value = "detail_id", type = IdType.ASSIGN_ID)
    @Schema(description="明细编号")
    private String detailId;

    /**
     * 排产编号
     */
    @TableField(value = "scheduling_id")
    @Schema(description="排产编号")
    private String schedulingId;

    /**
     * 任务ID
     */
    @TableField(value = "task_id")
    @Schema(description="任务ID")
    private String taskId;

    /**
     * 计划ID
     */
    @TableField(value = "plan_id")
    @Schema(description="计划ID")
    private String planId;

    /**
     * 工序ID
     */
    @TableField(value = "operation_id")
    @Schema(description="工序ID")
    private String operationId;

    /**
     * 计划开始时间
     */
    @TableField(value = "start_date")
    @Schema(description="计划开始时间")
    private Date startDate;

    /**
     * 计划结束时间
     */
    @TableField(value = "end_date")
    @Schema(description="计划结束时间")
    private Date endDate;

    /**
     * 实际完成时间
     */
    @TableField(value = "actual_finish_time")
    @Schema(description="实际完成时间")
    private Date actualFinishTime;

    /**
     * 班组ID
     */
    @TableField(value = "team_id")
    @Schema(description="班组ID")
    private String teamId;

    /**
     * 实际耗时(分钟)
     */
    @TableField(value = "duration_minutes")
    @Schema(description="实际耗时(分钟)")
    private Integer durationMinutes;

    /**
     * 状态(0=未开始,1=已开始,2=已完成)
     */
    @TableField(value = "`status`")
    @Schema(description="状态(0=未开始,1=已开始,2=已完成)")
    private Integer status;
}